$(function(){
    //定义全局的页码和页数量
    let pageNum=1;
    let pageSize=4;
    function init(search){
        $.ajax({
            url:'/getAllPost',
            type:'get',
            //分页查询需要参数
            data:{pageNum:pageNum,pageSize:pageSize,...search},
            success:function(result){
                // console.log(result);
                //生成动态数据结构
                //如果数据是对象,直接传递对象,如果是数组,就包装为对象
                let html=template('postListTemp',result.data)
                $('tbody').html(html);
                //生成分页结构
                setPagenation(Math.ceil(result.data.total/pageSize))
            }
        })
    }
    init();

    //实现分页功能
    function setPagenation(total){
        //初始化
        $('.pagination').bootstrapPaginator({
            //配置
            bootstrapMajorVersion:3,//版本为3及以上,id会生成在ul>li结构中,如果版本是2会生成div结构
            currentPage:pageNum,//当前页码
            totalPages:total,//总页数
            onPageClicked:function(event, originalEvent, type, page){
                //page是当前想获取数据的页码
                //修改全局pageNum
                pageNum=page;
                //重新调用加载数据的方法
                init();
            }
        })
    }

    //加载分类数据
    $.ajax({
        type:'get',
        url:'/getAllCate',
        dataType:'json',
        success:function(res){
            //生成分类下拉列表动态结构
            let str='<option value="all">所有分类</option>';
            for(let i=0;i<res.data.length;i++){
                str+=`<option value="${res.data[i].id}">${res.data[i].name}</option>`
            };
            $('.cateSelector').html(str);
        }
    })

    //实现筛选功能
    $('.btn-search').on('click',function(){
        //收集数据
        let obj={
            cate:$('.cateSelector').val(),
            status:$('.statuSelector').val()
        }
        // console.log(obj);
        //发起ajax请求
        init(obj);
    })

    //实现文章的删除
    $('tbody').on('click','.btnDel',function(){
        let id=$(this).data('id');
        //交互常识,删除要用户确认
        if(confirm('确定要删除吗?')){
            $.ajax({
                url:'/delPostById?id='+id,
                type:'get',
                dataType:'json',
                success:function(res){
                    if(res.code===200){
                        $('.alert-danger>span').text(res.msg);
                        $('.alert-danger').fadeIn(500).delay(3000).fadeOut(500)
                        //刷新的注意点
                        //1.如果当前页只有一条记录,删除后应该加载上一页数据
                        //2.如果当前页有多条记录,就重新加载这一页
                        //3.如果是第一页,只有一条记录,就给出提示
                        if($('tbody>tr').length===1){
                            if(pageNum>1){
                                pageNum--
                            }
                        }
                        init();
                    }
                }
            })
        }
    })
})